home *** CD-ROM | disk | FTP | other *** search
/ Chip 2005 August (Alt) / CHIP 2005-08.1.iso / program / guvenlik / syslinux-3.07.exe / sample / hello.c < prev    next >
Encoding:
C/C++ Source or Header  |  2005-01-03  |  1.2 KB  |  46 lines

  1. #ident "$Id: hello.c,v 1.6 2005/01/03 08:23:16 hpa Exp $"
  2. /* ----------------------------------------------------------------------- *
  3.  *   
  4.  *   Copyright 2002 H. Peter Anvin - All Rights Reserved
  5.  *
  6.  *   This program is free software; you can redistribute it and/or modify
  7.  *   it under the terms of the GNU General Public License as published by
  8.  *   the Free Software Foundation, Inc., 53 Temple Place Ste 330,
  9.  *   Boston MA 02111-1307, USA; either version 2 of the License, or
  10.  *   (at your option) any later version; incorporated herein by reference.
  11.  *
  12.  * ----------------------------------------------------------------------- */
  13.  
  14. /*
  15.  * hello.c
  16.  *
  17.  * Simple COM32 image
  18.  */
  19.  
  20. #include <com32.h>
  21.  
  22. #define NULL ((void *)0)
  23.  
  24. static inline void memset(void *buf, int ch, unsigned int len)
  25. {
  26.   asm volatile("cld; rep; stosb"
  27.            : "+D" (buf), "+c" (len) : "a" (ch) : "memory");
  28. }
  29.  
  30. int __start(void)
  31. {
  32.   const char *msg = "Hello, World!\r\n";
  33.   com32sys_t inreg;
  34.   const char *p;
  35.  
  36.   memset(&inreg, 0, sizeof inreg);
  37.  
  38.   for ( p = msg ; *p ; p++ ) {
  39.     inreg.edx.b[0] = *p;
  40.     inreg.eax.b[1] = 0x02;    /* Write Character */
  41.     __com32.cs_intcall(0x21, &inreg, NULL);
  42.   }
  43.  
  44.   return 0;
  45. }
  46.